home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
t_os
/
tomcon
/
tomcon1.c
< prev
next >
Wrap
C/C++ Source or Header
|
1991-10-18
|
2KB
|
81 lines
#define PROGRAM \
"TOWNS-MENU コンソール・ドライバ V0.04 " __DATE__ " by Y.Kurihara (Nif PDC01620)"
/*
TOMCON
TOMCON <コマンド>
TOMCON <X座標> <Y座標> <桁数> <行数>
TOMCON <X座標> <Y座標> <桁数> <行数> <コマンド>
指定範囲をコンソールにして COMMAND.COM を起動する。
<コマンド>が指定されている時はコマンドを実行する。
*フォントCGの使用方法は ORICON (MIYAZAKI氏作) を参考にしました。
*本プロクラムは LSI C-86 Ver 3.20 試食版 でコンパイルしました。
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jctype.h>
#include <dos.h>
#include "tomcon.h"
char *getcmd( void ) /* PSPのコマンドラインを取得 */
{
static char buff[ 128 ];
char far *ptr,*p = buff;
int n;
ptr = MK_FP( _psp,0x80 );
n = *ptr++;
while( n-- > 0 ) *p++ = *ptr++;
*p = 0;
return( buff );
}
char *getpara( char **cmd ) /* 文字列からパラメータを取得 */
{
char *p,*s;
p = s = *cmd;
if( *p == 0 ) return( p );
while( *s && !isspace( *s ) ) s++;
if( *s ) *s++ = 0;
while( *s && isspace( *s ) ) s++;
*cmd = s;
return( p );
}
main()
{
char *cmd;
int ret;
cmd = getcmd();
while( isspace( *cmd ) ) cmd++;
if( isdigit( *cmd ) ) {
x0 = atoi( getpara( &cmd ) );
y0 = atoi( getpara( &cmd ) );
xl = atoi( getpara( &cmd ) );
yl = atoi( getpara( &cmd ) );
if( x0 < 0 || x0 > 78 ) x0 = X0;
if( xl < 1 || x0 + xl > 80 ) xl = 80 - x0;
if( y0 < 0 || y0 > 78 ) y0 = Y0;
if( yl < 1 || y0 + yl > 30 ) yl = 30 - y0;
}
set_int29();
putchar( 0x0c );
if( *cmd ) {
ret = system( cmd );
} else {
puts( PROGRAM );
ret = system( "" );
}
reset_int29();
exit( ret );
}